<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

class Album extends CI_Controller{
     
    // Création du constructeur de la classe "Reserve"
    public function __construct(){
        parent::__construct();
        
        // Chargement du helper 'url'
        $this->load->helper('url');
        // Chargement du helper 'assets'
        $this->load->helper('assets');

        // Chargement de la base de données
        $this->load->database();

        // Chargement des modèles nécessaires à l'enregistrement des résultats
        $this->load->model('chapters_model');
        $this->load->model('users_chapters_model');
        $this->load->model('users_images_model');

    }

    // Création de la fonction index de chargement de la page de la réserve
    public function index(){

        $data = array();

        $data['title'] = "Pixworld";

        // On charge l'intro de l'histoire
        $intro_story = $this->chapters_model->get_intro();
        $intro_story = $intro_story[0];
        
        // Si l'utilisateur n'a pas de résultats
        if($intro_story!=null){

            $intro_story->chapters_description = utf8_decode($intro_story->chapters_description);
            // On charge les cartes associées à l'intro
            $cartes_id = array(14,15,16);

            $data['intro'] = $intro_story;
            $data['cartes_id'] = $cartes_id;
            $data['nav'] = 0;
            $data['intro_active'] = true;
            $data['next_chapter'] = 1;
            // Chargement de la vue de base de l'album
            $this->load->view("album/story_introduction_view", $data);
        }
        else{
            // On ne fait rien
        }

    }


    // Fonction permettant le chargement d'un nouvel environnement du jeu 1
    public function loadNewChapter(){

        $data = array();

        $chapter_id=$_POST['chapter_id'];

        if($chapter_id){

            // Si on s'apprête à charger un chapitre et pas l'intro
            if($chapter_id != 0){

                // On vérifie que l'utilisateur a bien déverrouillé le chapitre
                $access_chapter = $this->users_chapters_model->get_access(1, $chapter_id);
                if($access_chapter==true){

                    // On récupère le contenu du chapitre
                    $chapter_part = $this->chapters_model->get_chapter($chapter_id);
                    $chapter_part = $chapter_part[0];

                    // On récupère les cartes que possède l'utilisateur pour ce chapitre
                    $cartes = $this->users_images_model->get_rows(1, $chapter_id);
                    foreach($cartes as $carte){
                        $cartes_id[] = $carte->images_id;
                    }
                    // On ordonne le tableau obtenu pour toujours avoir les crates dans le même ordre
                    for($j=0;$j<(count($cartes_id)-1);$j++){
                        for($i=0;$i<(count($cartes_id)-1);$i++){
                            if(($cartes_id[$i]) > ($cartes_id[$i+1])){
                                $tmp = $cartes_id[$i];
                                $cartes_id[$i] = $cartes_id[$i+1];
                                $cartes_id[$i+1] = $tmp;
                            }
                        }
                    }
                    // Si on n'a pas 3 cartes, on complète avec des cartes retournées
                    if(count($cartes_id)!=3){
                        for($i=(count($cartes_id));$i<=3;$i++){
                            $cartes_id[] = 13;
                        }
                    }

                    // On remplit le tableau de données à transmettre à la vue
                    $data['chapter_part'] = $chapter_part->chapters_description;
                    $data['chapter_id'] = $chapter_id;
                    $data['cartes_id'] = $cartes_id;

                    // On charge la vue associée
                    $this->load->view("album/chapter_view", $data);
                }
                else{
                    // Alors on n'a pas le droit d'accéder aux infos
                    // On aura simplement les cartes retournées dans la liste de cartes
                    $cartes_id = array(13,13,13);

                    $data['chapter_part'] = 'Termine le jeu '.$chapter_id.' et tu découvriras la suite de l\'histoire...';
                    $data['chapter_id'] = $chapter_id;
                    $data['cartes_id'] = $cartes_id;

                    // On charge la vue de chapitre
                    $this->load->view("album/chapter_view", $data);
                }
            }
        }
        // Si on s'apprête à charger une nouvelle fois l'intro mais cette fois en Ajax
        else{
            // On récupère le contenu de l'intro
            $chapter_part = $this->chapters_model->get_chapter(5);
            $chapter_part = $chapter_part[0];

            // On récupère les cartes que possède l'utilisateur pour l'intro
            $cartes_id = array(14,15,16);

            // On remplit le tableau de données à transmettre à la vue
            $data['chapter_part'] = $chapter_part->chapters_description;
            $data['chapter_id'] = $chapter_id;
            $data['cartes_id'] = $cartes_id;

            // On charge la vue associée
            $this->load->view("album/chapter_view", $data);
        }
     }
     
     public function loadZoneNavigation(){

         $data = array();
         $chapter_id=$_POST['chapter_id'];
         $data['next_chapter'] = $chapter_id+1;
         $data['previous_chapter'] = $chapter_id-1;

         // On charge la vue associée
         $this->load->view("album/zone_navigation_view", $data);
     }

}


?>
